package com.itheima.d04_net_bs.server;

import java.io.*;
import java.net.Socket;
import java.util.Map;
import java.util.Objects;
import java.util.Set;

/**
 * 自定义线程任务类：
 * 负责和指定的客户端进行通信
 * <p>
 * 设置规则：
 * 客户端消息格式：
 * 群聊：
 * all:消息
 * 单聊：
 * one:ip地址:消息
 */
public class ChatRunnable implements Runnable {

    private Socket socket;

    public ChatRunnable(Socket socket) {
        this.socket = socket;
    }

    @Override
    public void run() {


        try (
                //1.获取Socket流对象
                OutputStream os = socket.getOutputStream();
                PrintStream ps = new PrintStream(os);
        ) {

            //2.持续和当前客户端交互
            while (true) {

                //3.读取客户端数据
                /*
                    遵循HTTP协议封装响应结果数据
                    响应行：一行字符串
                    响应头：多行字符串（key:value）
                    空行：
                    响应体：返回结果
                 */

                ps.println("HTTP/1.1 200 OK"); //响应行
                ps.println("Content-Type:text/html;charset=UTF-8"); //响应头
                ps.println("Host:www.itheima.com");//响应头
                ps.println(); //空行
                ps.println("<div><h1>黑马程序员</h1></div>");
                ps.flush();
                ps.close();
            }
        } catch (Exception e) {
            //e.printStackTrace();
            System.out.println(socket.getRemoteSocketAddress() + "：客户端强制退出...");
        }
    }

}



















